package com.lmexpress.enums;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

/**
 * 
 * <服务商API接口对接所需信息枚举>
 * 
 * @author Henry(fba02)
 * @version [版本号, 2020-12-09]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public enum ApiCredential {
  // ----------------------------------------------- 易仓API所需信息
  ECCANG_URL("eccang_url", null, "接口地址，必填"), // 易仓接口地址
  ECCANG_TOKEN("eccang_token", null, "易仓授权码，必填"), // 易仓token
  ECCANG_KEY("eccang_key", null, "易仓接口key，必填"), // 接口key
  ECCANG_PRODUCTCODE("eccang_productcode", null, "易仓产品代码，必填"), // 易仓产品代码
  ECCANG_ORDER("eccang_order", "createOrder", "创建订单"), // 下单接口
  ECCANG_LABEL("eccang_label", "getLabelUrl", "获取面单"), // 面单接口
  ECCANG_DEFAULT_SHIPPER("eccang_default_shipper", "0", "是否启用，默认发件人，可选值0和1", false), //
  ECCANG_LABEL_MUMBER("eccang_label_mumber", LabelNumber.REFERENCE_NO.getNumber(), "获取面单的号码,通常可选项为(参考号,追踪号,第三方系统订单号)",
      true), //
  ECCANG_LABEL_TYPE("eccang_label_type", LabelType.URL.getType(), "面单类型,url地址", true), //
  ECCANG_LABEL_FORMAT("eccang_label_format", LabelFormat.PDF.getFormat(), "面单格式", true), //
  // ----------------------------------------------- XMS
  XMS_USER_TOKEN("xms_user_token", null, "xms系统授权码"), // XMS系统
  XMS_PRODUCT_CODE("xms_product_code", null, "xms系统渠道代码"), // XMS系统
  XMS_ENDPOINT("xms_endpoint", null, "xms接口服务地址"), // XMS系统 http://47.92.33.48:8086/xms/services/order
  XMS_LABEL_MUMBER("xms_label_mumber", LabelNumber.TRACKING_NO.getNumber(), "获取面单的号码,通常可选项为(参考号,追踪号,第三方系统订单号)", true), //
  XMS_LABEL_TYPE("xms_label_type", LabelType.URL.getType(), "面单类型,url地址", true), //
  XMS_LABEL_FORMAT("xms_label_format", LabelFormat.PDF.getFormat(), "面单格式", true), //
  // ----------------------------------------------- EUB
  EUB_SENDER_NO("eub_sender_no", null, "sender_no:邮政14位大客户代码(必填,由服务商提供)"), //
  EUB_DATA_DIGEST("eub_data_digest", null, "data_digest:密匙(必填,由服务商提供)"), //
  EUB_WH_CODE("eub_wh_code", null, "wh_code:用户揽收机构编号 (必填,由服务商提供)"), //
  EUB_BIZ_PRODUCT_NO("eub_biz_product_no", null,
      "biz_product_no:业务产品代码(必填,001-e邮宝,002-航空挂小包,003-航空跟踪小包,004-航空平小包,005-e特快)"), //
  EUB_UNDELIVERY_OPTION("eub_undelivery_option", null, "undelivery_option:邮件不能被投递时的策略 (必填,1-放弃,2-退回)"), //
  EUB_FORECASTSHUT("eub_forecastshut", null, "forecastshut:预报关(0-无预报关信息,1-有预报关信息，默认0)"), //
  EUB_MAIL_SIGN("eub_mail_sign", null, "mail_sign:9610标识(1-是,2-否 默认2)"), //
  EUB_DECLARE_TYPE("eub_declare_type", null, "declare_type:申报类别(1-物品,2-货物 默认1)"), //
  EUB_DEFAULT_UNIT("eub_default_unit", null, "默认单位"), //
  EUB_INSURANCE_FLAG("eub_insurance_flag", null, "insurance_flag:保险保价标志(必填,1-基本,2-保价,3-保险 )"), //
  EUB_DEFAULT_SHIPPER("eub_default_shipper", "0", "是否启用，默认发件人，可选值0和1", false), //
  EUB_ORDER_RECEIVE_BACK("eub_order_receive_back",
      "https://my.ems.com.cn/pcpErp-web/a/pcp/orderService/OrderReceiveBack", "下单并返回追踪号接口 "), //
  EUB_LABEL_PRODUCT("eub_label_product", "https://my.ems.com.cn/pcpErp-web/a/pcp/surface/download", "获取面单地址"), //
  EUB_TRACKING_URL("eub_tracking_url", null,
      "轨迹 tracking_url:获取轨迹url(必填 ex:http://211.156.195.238/querypush-pcpw/mailTrackProtocolPortal/queryMailTrackWn)"), //
  EUB_TRACK_CIPHER("eub_track_cipher", null, "轨迹 获取轨迹秘钥(必填 ex:8CPBBV7e5Cl74y4L)"), //
  EUB_LABEL_URL("eub_label_url", null, "下载面单地址"), //
  EUB_LABEL_MUMBER("eub_label_mumber", LabelNumber.TRACKING_NO.getNumber(), "获取面单的号码,通常可选项为(参考号,追踪号,第三方系统订单号)", true), //
  EUB_LABEL_TYPE("eub_label_type", LabelType.BASE64.getType(), "面单类型,base64", true), //
  EUB_LABEL_FORMAT("eub_label_format", LabelFormat.PDF.getFormat(), "面单格式", true), //
  // ----------------------------------------------- 邮差小马
  POSTPONY_KEY("postpony_key", null, "key服务商提供"), //
  POSTPONY_SECRET("postpony_secret", null, "secret服务商提供"), //
  POSTPONY_AUTHORIZEDKEY("postpony_authorizedkey", null, "authorizedkey服务商提供"), //
  POSTPONY_CREATEORDER("postpony_createorder", "https://api.postpony.com/api/Ship", "创建订单"), //
  POSTPONY_LABLE("postpony_lable", "https://api.postpony.com/api/Download", "下载面单"), //
  POSTPONY_CANCELSHIP("postpony_cancelship", "https://api.postpony.com/api/CancelShip", "取消订单"), //
  POSTPONY_SHIPTYPE("postpony_shiptype", null, "服务商提供,可选值(DhlSmParcelGround,UspsFirstclassMerchant)"), //
  POSTPONY_LAX_STATE("postpony_lax_state", "AK,AZ,CA,CO,HI,ID,MT,NM,NV,OK,OR,SD,TX,UT,WA,WY", "LAX 州二字码集,多个州字码,分隔"), //
  POSTPONY_JFK_STATE("postpony_jfk_state",
      "AL,AR,CT,DC,DE,FL,GA,IA,IL,IN,KS,KY,LA,MA,MD,ME,MI,MN,MO,MS,NC,ND,NE,NH,NJ,NY,OH,PA,RI,SC,TN,VA,VT,WI,WV",
      "JFK 州二字码集,多个州字码,分隔"), //
  POSTPONY_ENABLE_DEFAULT_SHIPPER("postpony_enable_default_shipper", null, "是否启用默认发件人"), //
  POSTPONY_DEFAULT_SHIPPER_NAME("postpony_default_shipper_name", null, "默认发件人"), //
  POSTPONY_DEFAULT_SHIPPER_COMPANYNAME("postpony_default_shipper_companyname", null, "默认发件人公司"), //
  POSTPONY_DEFAULT_SHIPPER_TELEPHONE("postpony_default_shipper_telephone", null, "默认发件人电话"), //
  POSTPONY_DEFAULT_SHIPPER_ADDRESS("postpony_default_shipper_address", null, "默认发件人地址"), //
  POSTPONY_DEFAULT_SHIPPER_CITY("postpony_default_shipper_city", null, "默认发件人城市"), //
  POSTPONY_DEFAULT_SHIPPER_STATE("postpony_default_shipper_state", null, "默认发件人州"), //
  POSTPONY_DEFAULT_SHIPPER_POSTCODE("postpony_default_shipper_postcode", null, "默认发件人邮编"), //
  POSTPONY_DEFAULT_SHIPPER_COUNTRY("postpony_default_shipper_country", null, "默认发件人国家"), //
  POSTPONY_LABEL_MUMBER("postpony_label_mumber", LabelNumber.THIRD_PARTY_NO.getNumber(),
      "获取面单的号码,通常可选项为(参考号,追踪号,第三方系统订单号)", true), //
  POSTPONY_LABEL_TYPE("postpony_label_type", LabelType.BASE64.getType(), "面单类型,base64", true), //
  POSTPONY_LABEL_FORMAT("postpony_label_format", LabelFormat.PDF.getFormat(), "面单格式", true), //
  // ----------------------------------------------- 顺丰KTS
  KTS_API_USERNAME("kts_api_username", null, "API用户名,服务商提供,必填"), //
  KTS_API_KEY("kts_api_key", null, "APIKey,服务商提供,必填"), //
  KTS_EXPRESS_TYPE("kts_express_type", null, "快件类型,服务商提供,必填"), //
  KTS_CREATE_ORDER("kts_create_order", "https://orapi.trackmeeasy.com/lomp-ext/sf-express/contract/receiveOrder",
      "下单接口"), //
  KTS_LABEL("kts_label", "https://orapi.trackmeeasy.com/lomp-ext/sf-express/contract/getLabel", "获取面单接口"), //
  KTS_DEFAULT_SENDER_COMPANY("kts_default_sender_company", null, "默认发件人公司"), //
  KTS_DEFAULT_SENDER_NAME("kts_default_sender_name", null, "默认发件人"), //
  KTS_DEFAULT_SENDER_PHONE("kts_default_sender_phone", null, "默认发件人电话"), //
  KTS_DEFAULT_SENDER_MOBILE("kts_default_sender_mobile", null, "默认发件人手机"), //
  KTS_DEFAULT_SENDER_ZIPCODE("kts_default_sender_zipcode", null, "默认发件人邮编"), //
  KTS_DEFAULT_SENDER_EMAIL("kts_default_sender_email", null, "默认发件人邮箱"), //
  KTS_DEFAULT_SENDER_PROVINCE("kts_default_sender_province", null, "默认发件人省"), //
  KTS_DEFAULT_SENDER_CITY("kts_default_sender_city", null, "默认发件人城市="), //
  KTS_DEFAULT_SENDER_DISTRICT("kts_default_sender_district", null, "默认发件人街道"), //
  KTS_DEFAULT_SENDER_STREET_ADDRESS("kts_default_sender_street_address", null, "默认发件人地址"),
  KTS_LABEL_MUMBER("kts_label_mumber",
      LabelNumber.THIRD_PARTY_NO.getNumber() + "," + LabelNumber.REFERENCE_NO.getNumber(),
      "获取面单的号码,通常可选项为(参考号,追踪号,第三方系统订单号)。多个字段,分割", true), //
  KTS_LABEL_TYPE("kts_label_type", LabelType.BASE64.getType(), "面单类型,base64", true), //
  KTS_LABEL_FORMAT("kts_label_format", LabelFormat.PDF.getFormat(), "面单格式", true), //
  // ----------------------------------------------- 顺丰KTS B2C
  KTS_B2C_NAME("kts_b2c_name", null, "用户名", false), //
  KTS_B2C_CHECKWORD("kts_b2c_checkword", null, "秘钥", false), //
  KTS_B2C_EXPRESS_TYPE("kts_b2c_express_type", "44", "产品类型", false), //
  KTS_B2C_LABEL_MUMBER("kts_b2c_label_mumber",
      LabelNumber.THIRD_PARTY_NO.getNumber() + "," + LabelNumber.REFERENCE_NO.getNumber(),
      "获取面单的号码,通常可选项为(参考号,追踪号,第三方系统订单号)。多个字段,分割", true), //
  KTS_B2C_LABEL_TYPE("kts_b2c_label_type", LabelType.URL.getType(), "面单类型url", true), //
  KTS_B2C_LABEL_FORMAT("kts_b2c_label_format", LabelFormat.PDF.getFormat(), "面单格式", true), //
  // ----------------------------------------------- DHL EC
  DHLEC_USER_NAME("dhlec_user_name", null, "用户名，DHL官方提供"), //
  DHLEC_PASSWORD("dhlec_password", null, "密码，DHL官方提供"), //
  DHLEC_CLIENTID("dhlec_clientid", "62841", "ClientID，DHL官方提供"), //
  DHLEC_ACCESS_TOKEN("dhlec_access_token", null, "访问密钥，无需填写，由access_token接口获取过期时间为：86400秒"), //
  DHLEC_BILLINGREF1("dhlec_billingref1", null, "账单识别码，服务商提供，必填"), //
  DHLEC_CLOSEOUT("dhlec_closeout", "https://api.dhlglobalmail.com/v2/locations/{pickup}/closeout/multi.json",
      "closeout地址"), //
  DHLEC_DISTRIBUTION_CENTER_LAX("dhlec_distribution_center_lax", "USLAX1", "LAX配送中心账户，DHL官方提供"), //
  DHLEC_PICKUP_LAX("dhlec_pickup_lax", null, "LAX提货账户,DHL官方提供"), //
  DHLEC_DISTRIBUTION_CENTER_EWR("dhlec_distribution_center_ewr", "USEWR1", "EWR配送中心账户，DHL官方提供"), //
  DHLEC_PICKUP_EWR("dhlec_pickup_ewr", null, "EWR提货账户,DHL官方提供"), //
  DHLEC_WEIGHT_UOM("dhlec_weight_uom", "KG", "默认重量单位", true), //
  DHLEC_GROUND("dhlec_ground", "82", "产品代码，不大于1LB", true), //
  DHLEC_PLUS_GROUND("dhlec_plus_ground", "83", "产品代码，1-15LB", true), //
  DHLEC_MAILTYPE("dhlec_mailtype", "7", "mailType文档提供, true", true), //
  DHLEC_RETURNADDRESS("dhlec_returnaddress", "921 W. Artesia Boulevard", "退件地址"), //
  DHLEC_RETURNADDRESS_CITY("dhlec_returnaddress_city", "Compton", "退件城市"), //
  DHLEC_RETURNADDRESS_STATE("dhlec_returnaddress_state", "CA", "退件州"), //
  DHLEC_RETURNADDRESS_COUNTRY("dhlec_returnaddress_country", "US", "退件国家"), //
  DHLEC_RETURNADDRESS_POSTALCODE("dhlec_returnaddress_postalcode", "90220-5105", "退件邮编"), //
  DHLEC_RETURNADDRESS_COMPANYNAME("dhlec_returnaddress_companyname", "DHL eCommerce-LAX", "退件公司"), //
  DHLEC_LABEL_MUMBER("dhlec_label_mumber", LabelNumber.TRACKING_NO.getNumber(),
      "获取面单的号码,通常可选项为(参考号,追踪号,第三方系统订单号)。多个字段,分割", true), //
  DHLEC_LABEL_TYPE("dhlec_label_type", LabelType.URL.getType(), "面单类型,url地址", true), //
  DHLEC_LABEL_FORMAT("dhlec_label_format", LabelFormat.PNG.getFormat(), "面单格式", true), //
  // ----------------------------------------------- DHL EC V4
  DHLECV4_CLIENT_ID("dhlecv4_client_id", null, "client_id", false), //
  DHLECV4_CLIENT_SECRET("dhlecv4_client_secret", null, "client_secret", false), //
  DHLECV4_PICKUP("dhlecv4_pickup", null, "pickup账号", false), //
  DHLECV4_DISTRIBUTION_CENTER("dhlecv4_distribution_center", null, "派送中心", false), //
  DHLECV4_CONTENT_CATEGORY("dhlecv4_content_category", null, "DHL带电标识，可选值01", false), //
  DHLECV4_BILLING_REFERENCE("dhlecv4_billing_reference", "JiuFangTongXun", "DHL账单标识", true), //
  DHLECV4_ORDERED_PRODUCTID("dhlecv4_ordered_product_id", "GND", "DHL三字符产品代码", false), //
  DHLECV4_RETURN_ADDRESS("dhlecv4_return_address", "921 W. Artesia Boulevard", "退件地址"), //
  DHLECV4_RETURN_CITY("dhlecv4_return_city", "Compton", "退件城市"), //
  DHLECV4_RETURN_STATE("dhlecv4_return_state", "CA", "退件州"), //
  DHLECV4_RETURN_COUNTRY("dhlecv4_return_country", "US", "退件国家"), //
  DHLECV4_RETURN_POSTALCODE("dhlecv4_return_postalcode", "90220-5105", "退件邮编"), //
  DHLECV4_RETURN_COMPANYNAME("dhlecv4_return_companyname", "DHL eCommerce-LAX", "退件公司"), //
  DHLECV4_LABEL_MUMBER("dhlecv4_label_mumber", LabelNumber.TRACKING_NO.getNumber(),
      "获取面单的号码,通常可选项为(参考号,追踪号,第三方系统订单号)。多个字段,分割", true), //
  DHLECV4_LABEL_TYPE("dhlecv4_label_type", LabelType.URL.getType(), "面单类型,url地址", true), //
  DHLECV4_LABEL_FORMAT("dhlecv4_label_format", LabelFormat.PNG.getFormat(), "面单格式", true), //
  // ----------------------------------------------- K5系统
  KINGTRANS_CLIENTID("kingtrans_clientid", null, "ClientId,服务商提供，必填"), //
  KINGTRANS_TOKEN("kingtrans_token", null, "Token,服务商提供，必填"), //
  KINGTRANS_ORDERTYPE("kingtrans_ordertype", "4", "制单类型。1：快件订单； 2：快递制单-非实时返回单号； 3：仓储订单； 4：快递制单-实时返回单号(等待时间较长)，默认：4"), //
  KINGTRANS_LAX_STATE("kingtrans_lax_state", "AK,AZ,CA,CO,HI,ID,MT,NM,NV,OK,OR,SD,TX,UT,WA,WY", "LAX 州二字码集,多个州字码,分隔"), //
  KINGTRANS_JFK_STATE("kingtrans_jfk_state",
      "AL,AR,CT,DC,DE,FL,GA,IA,IL,IN,KS,KY,LA,MA,MD,ME,MI,MN,MO,MS,NC,ND,NE,NH,NJ,NY,OH,PA,RI,SC,TN,VA,VT,WI,WV",
      "JFK 州二字码集,多个州字码,分隔"), //
  KINGTRANS_USPSMAIL_LAX_PRODUCTCODE("kingtrans_uspsmail_lax_productcode", "US_USPS", "渠道代码,由服务商提供"), //
  KINGTRANS_USPSMAIL_JFK_PRODUCTCODE("kingtrans_uspsmail_jfk_productcode", "US_USPS_B", "渠道代码,由服务商提供"), //
  KINGTRANS_CREATE_ORDER("kingtrans_create_order", "http://ysdyt.kingtrans.cn/PostInterfaceService?method=createOrder",
      "创建运单"), //
  KINGTRANS_LABEL_URL("kingtrans_label_url", "http://ysdyt.kingtrans.cn/PostInterfaceService?method=printOrderLabel",
      "获取面单"), //
  KINGTRANS_LABEL_MUMBER("kingtrans_label_mumber", LabelNumber.THIRD_PARTY_NO.getNumber(),
      "获取面单的号码,通常可选项为(参考号,追踪号,第三方系统订单号)", true), //
  KINGTRANS_LABEL_TYPE("kingtrans_label_type", LabelType.URL.getType(), "面单类型,url地址", true), //
  KINGTRANS_LABEL_FORMAT("kingtrans_label_format", LabelFormat.PDF.getFormat(), "面单格式", true), //
  // ----------------------------------------------- 华磊系统
  HUALEI_USERNAME("hualei_username", null, "用户名，服务商系统获取，必填"), //
  HUALEI_PASSWORD("hualei_password", null, "密码，服务商系统获取，必填"), //
  HUALEI_SERVER_URL("hualei_server_url", null, "服务商地址，必填。如:http://118.25.228.118:8082"), //
  HUALEI_PRODUCT_CODE("hualei_product_code", null, "华磊产品代码，服务商获取，必填"), //
  HUALEI_LABEL_URL("hualei_label_url", null, "服务商打印标签地址，必填"), //
  HUALEI_LABELFORMAT("hualei_labelformat", null, "服务商打印标签格式，必填"), // 用于拼接URL来获取面单
  HUALEI_LABEL_MUMBER("hualei_label_mumber", LabelNumber.THIRD_PARTY_NO.getNumber(), "获取面单的号码,通常可选项为(参考号,追踪号,第三方系统订单号)",
      true), //
  HUALEI_LABEL_TYPE("hualei_label_type", LabelType.URL.getType(), "面单类型,url地址", true), //
  HUALEI_LABEL_FORMAT("hualei_label_format", LabelFormat.PDF.getFormat(), "面单格式", true), //
  // ----------------------------------------------- NEWGISTICS
  NEWGISTICS_KEY("newgistics_key", null, "Key服务商提供，必填"), //
  NEWGISTICS_SECRET("newgistics_secret", null, "Secret服务商提供，必填"), //
  NEWGISTICS_SHIPPER_ID("newgistics_shipper_id", null, "ShipperId服务商提供，必填"), //
  NEWGISTICS_SHIPMENTS_CLIENT_FACILITY_ID("newgistics_shipments_client_facility_id", null,
      "Shipment CLIENT_FACILITY_ID服务商提供，必填，4位数字"), //
  NEWGISTICS_MANIFESTS_CLIENT_FACILITY_ID("newgistics_manifests_client_facility_id", null,
      "Manifests CLIENT_FACILITY_ID服务商提供，必填，4位数字"), //
  NEWGISTICS_ACCESS_TOKEN("newgistics_access_token", null, "访问密钥，无需填写，由access_token接口获取过期时间为：86400秒"), //
  NEWGISTICS_GENERATION_TOKEN("newgistics_generation_token", null, "https://api.pitneybowes.com/oauth/token"), //
  NEWGISTICS_SHIPMENTS("newgistics_shipments", null, "https://api.pitneybowes.com/shippingservices/v1/shipments"), //
  NEWGISTICS_MANIFESTS("newgistics_manifests", null, "https://api.pitneybowes.com/shippingservices/v1/manifests"), //
  NEWGISTICS_LABEL("newgistics_label", null,
      "https://api.pitneybowes.com/shippingservices/v1/shipments/{trackingNumber}?carrier=Newgistics"), //
  NEWGISTICS_FACILITY_CODE("newgistics_facility_code", "ONT", "默认交货仓"), //
  NEWGISTICS_NON_DELIVERY_OPTION("newgistics_non_delivery_option", null,
      "未妥投的操作，不填则不做操作，可选值：ReturnServiceRequested,ChangeServiceRequested"), //
  NEWGISTICS_FORM_ADDRESS_LINE("newgistics_form_address_line", "3984 WASHINGTON BLVD 139", "默认发件地址"), //
  NEWGISTICS_FORM_ADDRESS_NAME("newgistics_form_address_name", "6M express", "默认发件人"), //
  NEWGISTICS_FORM_ADDRESS_COMPANY("newgistics_form_address_company", "HYSAN LLC DFW-P(510)480-1755)", "默认发件公司"), //
  NEWGISTICS_FORM_ADDRESS_COUNTRYCODE("newgistics_form_address_countrycode", "US", "默认发件国家"), //
  NEWGISTICS_FORM_ADDRESS_CITYTOWN("newgistics_form_address_citytown", "LA", "默认发件城市"), //
  NEWGISTICS_FORM_ADDRESS_STATEPROVINCE("newgistics_form_address_stateprovince", "CA", "默认发件州省"), //
  NEWGISTICS_FORM_ADDRESS_POSTALCODE("newgistics_form_address_postalcode", "94538", "默认发件邮编"),
  NEWGISTICS_LABEL_MUMBER("newgistics_label_mumber", LabelNumber.TRACKING_NO.getNumber(),
      "获取面单的号码,通常可选项为(参考号,追踪号,第三方系统订单号)", true), //
  NEWGISTICS_LABEL_TYPE("newgistics_label_type", LabelType.URL.getType(), "面单类型,url地址", true), //
  NEWGISTICS_LABEL_FORMAT("newgistics_label_format", LabelFormat.PDF.getFormat(), "面单格式", true), //
  // ----------------------------------------------- 纽门
  VMMIS_CUSTOMER_ID("vmmis_customerid", null, "钮门客户id"), //
  VMMIS_KEY("vmmis_key", null, "钮门密钥"), //
  VMMIS_SERVER_URL("vmmis_server_url", null, "钮门系统api的ip+端口"), //
  VMMIS_CMODEL_NAME("vmmis_cmodel_name", null, "cModelName服务商提供"), //
  VMMIS_PRODUCT_NAME("vmmis_product_name", null, "钮门渠道名称"), //
  VMMIS_LABEL_MUMBER("vmmis_label_mumber", LabelNumber.TRACKING_NO.getNumber(), "获取面单的号码,通常可选项为(参考号,追踪号,第三方系统订单号)",
      true), //
  VMMIS_LABEL_TYPE("vmmis_label_type", LabelType.URL.getType(), "面单类型,url地址", true), //
  VMMIS_LABEL_FORMAT("vmmis_label_format", LabelFormat.PDF.getFormat(), "面单格式", true),
  // ----------------------------------------------- ETOWER
  ETOWER_ACCESS_KEY("etower_access_key", null, "access_key服务商提供", false), //
  ETOWER_SECRET_ACCESS_KEY("etower_secret_access_key", null, "secret_access_key服务商提供", false), //
  ETOWER_SERVICE_CODE("etower_service_code", null, "渠道代码，服务商提供"), //
  ETOWER_BATTERY_PACKING("etower_battery_packing", null, "batteryPacking与服务商渠道保持一致"), //
  ETOWER_BATTERY_TYPE("etower_battery_type", null, "batteryType与服务商渠道保持一致"), //
  ETOWER_LABEL_MUMBER("etower_label_mumber", LabelNumber.TRACKING_NO.getNumber(), "获取面单的号码,通常可选项为(参考号,追踪号,第三方系统订单号)",
      true), //
  ETOWER_LABEL_TYPE("etower_label_type", LabelType.BASE64.getType(), "面单类型,Base64编码", true), //
  ETOWER_LABEL_FORMAT("etower_label_format", LabelFormat.PDF.getFormat(), "面单格式", true),
  // ----------------------------------------------- owdiex
  OWDIEX_APP_KEY("owdiex_app_key", null, "appkey服务商提供", false), //
  OWDIEX_APP_SECRET("owdiex_app_secret", null, "appCecret服务商提供", false), //
  OWDIEX_DEFAULT_SHIPPER("owdiex_default_shipper", "0", "是否启用，默认发件人，可选值0和1", false);//

  private String key; // 键
  private String value; // 值
  private String desc;// 描述
  private boolean readonly = false;// 是否只读

  public String getKey() {
    return key;
  }

  public String getValue() {
    return value;
  }

  public String getDesc() {
    return desc;
  }

  public boolean getReadonly() {
    return readonly;
  }

  public void setValue(String value) {
    this.value = value;
  }

  private ApiCredential() {
  }

  private ApiCredential(String key) {
    this.key = key;
  }

  private ApiCredential(String key, String value) {
    this.key = key;
    this.value = value;
  }

  private ApiCredential(String key, String value, String desc) {
    this.key = key;
    this.value = value;
    this.desc = desc;
  }

  private ApiCredential(String key, String value, String desc, boolean readonly) {
    this.key = key;
    this.value = value;
    this.desc = desc;
    this.readonly = readonly;
  }

  /**
   * <加载所有物流API所需信息.>
   * 
   * @return
   * @author Henry(fba02)
   * @version [版本号, 2020-11-4]
   * @see [类、类#方法、类#成员]
   */
  public static Map<String, List<Map<String, Object>>> loadApi() {
    Map<String, List<Map<String, Object>>> result = new LinkedHashMap<String, List<Map<String, Object>>>();
    List<Map<String, Object>> tmp = null;
    Map<String, Object> data = null;
    final String key = "key";
    final String value = "value";
    final String desc = "desc";
    final String readonly = "readonly";
    for (ApiCredential apiConfigure : ApiCredential.values()) {
      String name = apiConfigure.name();
      String serviceName = name.split("_")[0];
      data = new LinkedHashMap<String, Object>();
      data.put(key, apiConfigure.getKey());
      data.put(value, apiConfigure.getValue());
      data.put(desc, apiConfigure.getDesc());
      data.put(readonly, apiConfigure.getReadonly());
      if (!result.containsKey(serviceName)) {
        tmp = new ArrayList<Map<String, Object>>();
        tmp.add(data);
      } else {
        result.get(serviceName).add(data);
      }
      result.put(serviceName, tmp);
    }
    return result;
  }
}